#!/usr/bin/eruby -Ke -C euc-jp <% require "nkf" require "cgi" require "net/imap" require "util" require "config" MailInfo = Struct.new(:uid, :seen, :from, :subject, :date) cgi = CGI.new open_session(cgi) do |session| if cgi.key?("mailbox") session["mailbox"] = cgi["mailbox"][0] end $mailbox = session["mailbox"] imap = Net::IMAP.new(HOST) imap.authenticate(session["auth_type"], session["user"], session["password"]) imap.select(session["mailbox"]) if imap.responses.delete("EXISTS")[-1] == 0 $summary = nil else $summary = [] mails = imap.fetch(1..-1, ["UID", "FLAGS", "ENVELOPE", "INTERNALDATE"]) mails.each do |mail| uid = mail.attr["UID"] seen = mail.attr["FLAGS"].include?(:Seen) from = format_from(mail.attr["ENVELOPE"].from) subject = format_subject(mail.attr["ENVELOPE"].subject) date = format_date(mail.attr["INTERNALDATE"]) $summary.push(MailInfo.new(uid, seen, from, subject, date)) end $summary.reverse! end end %>
このメールボックスにメールはありません
<% else %>ID | 送信者 | 件名 | 日付 | ||||
---|---|---|---|---|---|---|---|
<%=mail.uid%> | <%=mail.from%> | <%=mail.subject%> | <%=mail.date%> | <% else %><%=mail.uid%> | <%=mail.from%> | <%=mail.subject%> | <%=mail.date%> | <% end %>